/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package networkrespnse;

import core.ParameterDecoder;
import core.Position;
import utils.Utils;

/**
 *
 * @author Kvest
 */
public class TaxiParkingsResponse2 extends TaxiParkingsResponse
{
    public TaxiParkingsResponse2(byte[] data)
    {
        super(data);
        id = TAXI_PARKINGS_RESPONSE2;
    }
    
    protected void parse(byte[] data)
    {
        byte[] body,temp;
        int index,count,size;
        //��������  body
        body = ParameterDecoder.getTransferBody(data);
        //Имя пакета
        temp = new byte[4];
        index = 0;
        for (int i=0;i<4;i++)
        {
            temp[i] = body[index++];
        }
        index += Utils.byteToInt(temp);
        
        //ResponseDate - нам не надо
        //index += 8;
        
        //ChangeTaxiParkingsDate 
        temp = new byte[8];
        for (int i=0;i<8;i++)
        {
            temp[i] = body[index++];
        }
        lastUpdate = Utils.byteToDate(temp);
                
        //������ �������
        temp = new byte[4];
        for (int i=0;i<4;i++)
        {
                temp[i] = body[index++];
        }
        count = Utils.byteToInt(temp);


        //������ ID стоянок
        for (int j=0;j<count;j++)
        {
            for (int i=0;i<4;i++)
            {
                temp[i] = body[index++];
            }
            addPosition(new Position(Utils.byteToInt(temp)));
        }

        for (int i=0;i<4;i++)
        {
                temp[i] = body[index++];
        }

        //������ �������� �������
        for (int j = 0; j < count; j++)
        {
                temp = new byte[4];
                for (int i=0;i<4;i++)
                {
                        temp[i] = body[index++];
                }
                size = Utils.byteToInt(temp);
                temp = new byte[size];
                for (int i=0;i<size;i++)
                {
                        temp[i] = body[index++];
                }
                getPosition(j).setParkingName(Utils.byteToString(temp));
        }

        for (int i=0;i<4;i++)
        {
                temp[i] = body[index++];
        }

        //������ �������� �������� �������
        for (int j = 0; j < count; j++)
        {
                temp = new byte[4];
                for (int i=0;i<4;i++)
                {
                        temp[i] = body[index++];
                }
                size = Utils.byteToInt(temp);
                temp = new byte[size];
                for (int i=0;i<size;i++)
                {
                        temp[i] = body[index++];
                }
                getPosition(j).setParkingRegion(Utils.byteToString(temp));
        }
    }
}
